home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / reader_requests / alienbreed3d2 / cheesesauce / newloadfromdisk.s < prev    next >
Text File  |  1997-11-28  |  14KB  |  962 lines

  1. ******************************************************
  2.  
  3. ENDOFQUEUE: dc.l 0
  4.  
  5. INITQUEUE:
  6.  
  7.  move.l #WorkSpace,ENDOFQUEUE
  8.  
  9.  rts
  10.  
  11. QUEUEFILE:
  12. ; On entry:
  13. ; a0=Pointer to filename
  14. ; d0=Ptr to dest. of addr
  15. ; d1=ptr to dest. of len.
  16. ; typeofmem=type of memory
  17.  
  18.  movem.l d0-d7/a0-a6,-(a7)
  19.  
  20.  move.l ENDOFQUEUE,a1
  21.  
  22.  move.l d0,(a1)+
  23.  move.l d1,(a1)+
  24.  move.l TYPEOFMEM,(a1)+
  25.  move.w #79,d0
  26. .copyname:
  27.  move.b (a0)+,(a1)+
  28.  dbra d0,.copyname
  29.  
  30.  add.l #100,ENDOFQUEUE
  31.  
  32.  movem.l (a7)+,d0-d7/a0-a6
  33.  
  34.  rts
  35.  
  36. FLUSHQUEUE:
  37.  
  38.  bsr FLUSHPASS
  39.  
  40. tryagain
  41.  tst.b d6
  42.  beq .loadedall
  43.  
  44. * Find first unloaded file and prompt for disk.
  45.  move.l #WorkSpace,a2
  46. .findfind:
  47.  tst.l (a2)
  48.  bne.s .foundunloaded
  49.  add.l #100,a2
  50.  bra.s .findfind
  51. .foundunloaded:
  52.  
  53. * A2 points at an unloaded file thingy.
  54. * Prompt for the disk.
  55.  
  56.  move.l #VOLLINE,a3
  57.  move.l #$20202020,(a3)+
  58.  move.l #$20202020,(a3)+
  59.  move.l #$20202020,(a3)+
  60.  move.l #$20202020,(a3)+
  61.  move.l #$20202020,(a3)+
  62.  move.l #$20202020,(a3)+
  63.  move.l #$20202020,(a3)+
  64.  move.l #$20202020,(a3)+
  65.  move.l #$20202020,(a3)+
  66.  move.l #$20202020,(a3)+
  67.  
  68.  move.l #VOLLINE,a3
  69.  
  70. ; moveq #-1,d0
  71. ; move.l a2,a4
  72. ; add.l #12,a4
  73. ;.notfoundyet:
  74. ; addq #1,d0
  75. ; cmp.b #':',(a4)+
  76. ; bne.s .notfoundyet
  77. ;
  78. ; move.w d0,d1
  79. ; asr.w #1,d1
  80. ; sub.w d1,a3
  81. ;
  82.  move.l a2,a4
  83.  add.l #12,a4
  84.  
  85.  move.w #79,d0
  86. .putinvol:
  87.  move.b (a4)+,(a3)+
  88.  dbra d0,.putinvol
  89.  
  90.  movem.l d0-d7/a0-a6,-(a7)
  91.  move.w #3,OptScrn
  92.  move.w #0,OPTNUM
  93.  bsr DRAWOPTSCRN
  94.  movem.l (a7)+,d0-d7/a0-a6
  95.  
  96. .wtrel:
  97.  btst #7,$bfe001
  98.  beq.s .wtrel
  99.  
  100. .wtclick:
  101.  btst #6,$bfe001
  102.  bne.s .wtclick
  103.  
  104.  bsr FLUSHPASS
  105.  
  106.  bra tryagain
  107.  
  108. .loadedall
  109.  rts
  110.  
  111. FLUSHPASS:
  112.  move.l #WorkSpace,a2
  113.  moveq #0,d7    ; loaded a file
  114.  moveq #0,d6    ; tried+failed
  115.  
  116. .flushit
  117.  move.l a2,d0
  118.  cmp.l ENDOFQUEUE,d0
  119.  bge.s FLUSHED
  120.  
  121.  tst.l (a2)
  122.  beq.s .donethisone
  123.  
  124.  lea 12(a2),a0    ; ptr to name
  125.  
  126.  move.l 8(a2),TYPEOFMEM
  127.  
  128.  jsr TRYTOOPEN
  129.  tst.l d0
  130.  beq.s .failtoload
  131.  
  132.  move.l d0,handle
  133.  jsr DEFLOADFILE 
  134.  st d7
  135.  
  136.  move.l (a2),a3
  137.  move.l d0,(a3)
  138.  
  139.  move.l 4(a2),d0
  140.  beq.s .nolenstore
  141.  
  142.  move.l d0,a3
  143.  move.l d1,(a3)
  144.  
  145. .nolenstore:
  146.  move.l #0,(a2)
  147.  bra.s .donethisone
  148.  
  149. .failtoload
  150.  st d6
  151.  
  152. .donethisone:
  153.  add.l #100,a2
  154.  bra .flushit
  155.  
  156. FLUSHED:
  157.  rts
  158.  
  159.  
  160. TRYTOOPEN:
  161.  movem.l d1-d7/a0-a6,-(a7)
  162.  move.l a0,d1
  163.  move.l doslib,a6
  164.  move.l #1005,d2
  165.  jsr -30(a6)
  166.  movem.l (a7)+,d1-d7/a0-a6
  167.  rts
  168.  
  169. ***************************************************
  170.  
  171. SFX_NAMES:
  172.  dc.l ScreamName,4400
  173.  dc.l ShootName,7200
  174.  dc.l 0,0
  175. ; dc.l MunchName,5400
  176.  dc.l PooGunName,4600
  177.  dc.l CollectName,3400
  178. ;5
  179.  dc.l DoorNoiseName,8400
  180.  dc.l BassName,8000
  181.  dc.l StompName,4000
  182.  dc.l LowScreamName,8600
  183.  dc.l BaddieGunName,6200
  184. ;10
  185. ; dc.l 0,0
  186.  dc.l SwitchNoiseName,1200
  187.  dc.l ReloadName,4000
  188.  dc.l NoAmmoName,2200
  189.  dc.l SplotchName,3000
  190.  dc.l SplatPopName,5600
  191. ;15 
  192.  dc.l BoomName,11600
  193.  dc.l HissName,7200
  194.  dc.l Howl1Name,7400
  195.  dc.l Howl2Name,9200
  196.  dc.l PantName,5000
  197. ;20
  198.  dc.l WhooshName,4000
  199.  dc.l ShotGunName,8800
  200. ; dc.l 0,0
  201.  dc.l FlameName,9000
  202.  dc.l MuffledName,1800
  203.  dc.l ClopName,3400
  204. ;25 
  205.  dc.l ClankName,1600
  206.  dc.l TeleportName,11000
  207.  dc.l HALFWORMPAINNAME,8400
  208.  dc.l -1
  209.  
  210. ScreamName:    dc.b 'AB3D2:sounds/scream',0
  211.  even
  212. ShootName:    dc.b 'AB3D2:sounds/fire!',0
  213.  even
  214. *
  215. *
  216. PooGunName:    dc.b 'AB3D2:sounds/shoot.dm',0
  217.  even
  218. CollectName:    dc.b 'AB3D2:sounds/collect',0
  219.  even
  220. DoorNoiseName:    dc.b 'AB3D2:sounds/newdoor',0
  221.  even
  222. BassName:    dc.b 'AB3D2:sounds/splash',0
  223.  even
  224. StompName:    dc.b 'AB3D2:sounds/footstep3',0
  225.  even
  226. LowScreamName:    dc.b 'AB3D2:sounds/lowscream',0
  227.  even
  228. BaddieGunName:    dc.b 'AB3D2:sounds/baddiegun',0
  229.  even
  230. SwitchNoiseName:dc.b 'AB3D2:sounds/switch',0
  231.  even
  232. ReloadName:    dc.b 'AB3D2:sounds/switch1.sfx',0
  233.  even
  234. NoAmmoName:    dc.b 'AB3D2:sounds/noammo',0
  235.  even
  236. SplotchName:    dc.b 'AB3D2:sounds/splotch',0
  237.  even
  238. SplatPopName:    dc.b 'AB3D2:sounds/splatpop',0
  239.  even
  240. BoomName:    dc.b 'AB3D2:sounds/boom',0
  241.  even
  242. HissName:    dc.b 'AB3D2:sounds/newhiss',0
  243.  even
  244. Howl1Name:    dc.b 'AB3D2:sounds/howl1',0
  245.  even
  246. Howl2Name:    dc.b 'AB3D2:sounds/howl2',0
  247.  even
  248. PantName:    dc.b 'AB3D2:sounds/pant',0
  249.  even
  250. WhooshName:    dc.b 'AB3D2:sounds/whoosh',0
  251.  even
  252. ShotGunName:    dc.b 'AB3D2:sounds/shotgun',0
  253.  even
  254. FlameName:    dc.b 'AB3D2:sounds/flame',0 
  255.  even
  256. MuffledName:    dc.b 'AB3D2:sounds/MuffledFoot',0
  257.  even
  258. ClopName:    dc.b 'AB3D2:sounds/footclop',0
  259.  even
  260. ClankName:    dc.b 'AB3D2:sounds/footclank',0
  261.  even
  262. TeleportName:    dc.b 'AB3D2:sounds/teleport',0
  263.  even
  264. HALFWORMPAINNAME: dc.b 'AB3D2:sounds/HALFWORMPAIN',0
  265.  even
  266.   
  267. MunchName:    dc.b 'AB3D2:sounds/munch',0
  268.  even
  269. RoarName:    dc.b 'AB3D2:sounds/bigscream',0
  270.  even
  271.  
  272. ;-102
  273. ;7c
  274.  
  275. OBJNAME: ds.w 80
  276.  
  277. OBJ_NAMES:
  278.  dc.l wad1n
  279.  dc.l ptr1n
  280.  
  281.  dc.l wad2n
  282.  dc.l ptr2n
  283.  
  284. ; dc.l wad3n
  285. ; dc.l ptr3n
  286.  
  287.  dc.l wad4n
  288.  dc.l ptr4n
  289.  
  290.  dc.l wad5n
  291.  dc.l ptr5n
  292.  
  293.  dc.l wad6n
  294.  dc.l ptr6n
  295.  
  296.  dc.l wad7n
  297.  dc.l ptr7n
  298.  
  299.  dc.l wad8n
  300.  dc.l ptr8n
  301.  
  302.  dc.l wad9n
  303.  dc.l ptr9n
  304.  
  305.  dc.l wadan
  306.  dc.l ptran
  307.  
  308.  dc.l wadbn
  309.  dc.l ptrbn
  310.  
  311.  dc.l wadcn
  312.  dc.l ptrcn
  313.  
  314.  dc.l waddn
  315.  dc.l ptrdn
  316.  
  317.  dc.l waden
  318.  dc.l ptren
  319.  
  320.  dc.l wadfn
  321.  dc.l ptrfn
  322.  
  323.  dc.l wadgn
  324.  dc.l ptrgn
  325.  
  326.  
  327.  dc.l -1,-1
  328.  
  329. wad1n:
  330.  dc.b 'AB3D1:includes/ALIEN2.wad',0
  331.  even
  332. ptr1n:
  333.  dc.b 'AB3D1:includes/ALIEN2.ptr',0
  334.  even
  335. wad2n:
  336.  dc.b 'AB3D1:includes/PICKUPS.wad',0
  337.  even
  338. ptr2n:
  339.  dc.b 'AB3D1:includes/PICKUPS.ptr',0
  340.  even
  341. wad3n:
  342.  dc.b 'AB3D1:includes/uglymonster.wad',0
  343.  even
  344. ptr3n:
  345.  dc.b 'AB3D1:includes/uglymonster.ptr',0
  346.  even
  347. wad4n:
  348.  dc.b 'AB3D1:includes/flyingalien.wad',0
  349.  even
  350. ptr4n:
  351.  dc.b 'AB3D1:includes/flyingalien.ptr',0
  352.  even
  353. wad5n:
  354.  dc.b 'AB3D1:includes/keys.wad',0
  355.  even
  356. ptr5n:
  357.  dc.b 'AB3D1:includes/keys.ptr',0
  358.  even
  359. wad6n:
  360.  dc.b 'AB3D1:includes/rockets.wad',0
  361.  even
  362. ptr6n:
  363.  dc.b 'AB3D1:includes/rockets.ptr',0
  364.  even
  365. wad7n:
  366.  dc.b 'AB3D1:includes/barrel.wad',0
  367.  even
  368. ptr7n:
  369.  dc.b 'AB3D1:includes/barrel.ptr',0
  370.  even
  371. wad8n:
  372.  dc.b 'AB3D1:includes/bigbullet.wad',0
  373.  even
  374. ptr8n:
  375.  dc.b 'AB3D1:includes/bigbullet.ptr',0
  376.  even
  377. wad9n:
  378.  dc.b 'AB3D1:includes/newgunsinhand.wad',0
  379.  even
  380. ptr9n:
  381.  dc.b 'AB3D1:includes/newgunsinhand.ptr',0
  382.  even
  383. wadan:
  384.  dc.b 'AB3D1:includes/newmarine.wad',0
  385.  even
  386. ptran:
  387.  dc.b 'AB3D1:includes/newmarine.ptr',0
  388.  even
  389. wadbn:
  390.  dc.b 'AB3D1:includes/lamps.wad',0
  391.  even
  392. ptrbn:
  393.  dc.b 'AB3D1:includes/lamps.ptr',0
  394.  even
  395. wadcn:
  396.  dc.b 'AB3D1:includes/worm.wad',0
  397.  even
  398. ptrcn:
  399.  dc.b 'AB3D1:includes/worm.ptr',0
  400.  even
  401. waddn:
  402.  dc.b 'AB3D1:includes/explosion.wad',0
  403.  even
  404. ptrdn:
  405.  dc.b 'AB3D1:includes/explosion.ptr',0
  406.  even
  407. waden:
  408.  dc.b 'AB3D1:includes/bigclaws.wad',0
  409.  even
  410. ptren:
  411.  dc.b 'AB3D1:includes/bigclaws.ptr',0
  412.  even
  413. wadfn:
  414.  dc.b 'AB3D1:includes/tree.wad',0
  415.  even
  416. ptrfn:
  417.  dc.b 'AB3D1:includes/tree.ptr',0
  418.  even
  419. wadgn:
  420.  dc.b 'AB3D1:includes/glare.wad',0
  421.  even
  422. ptrgn:
  423.  dc.b 'AB3D1:includes/glare.ptr',0
  424.  even
  425.  
  426. OBJ_ADDRS: ds.l 160
  427.  
  428. blocklen: dc.l 0
  429. blockname: dc.l 0
  430. blockstart: dc.l 0
  431.  
  432. BOTPICNAME: dc.b 'AB3:includes/panelraw',0
  433.  even
  434. PanelLen: dc.l 0
  435.  
  436. FREEBOTMEM:
  437.  move.l Panel,d1
  438.  move.l d1,a1
  439.  move.l PanelLen,d0
  440.  move.l 4.w,a6
  441.  jsr -210(a6)
  442.  
  443.  rts
  444.  
  445. LOADBOTPIC:
  446.  
  447.  PRSDb
  448.  
  449.  move.l #BOTPICNAME,blockname
  450.  
  451.  move.l doslib,a6
  452.  move.l blockname,d1
  453.  move.l #1005,d2
  454.  jsr -30(a6)
  455.  move.l d0,handle
  456.  
  457.  lea fib,a5
  458.  move.l handle,d1
  459.  move.l a5,d2
  460.  jsr -390(a6)
  461.  
  462.  move.l $7c(a5),blocklen
  463.  move.l #30720,PanelLen
  464.  
  465.  move.l #2,d1
  466.  move.l 4.w,a6
  467.  move.l PanelLen,d0
  468.  jsr -198(a6)
  469.  move.l d0,blockstart
  470. ; move.l doslib,a6
  471. ; move.l blockname,d1
  472. ; move.l #1005,d2
  473. ; jsr -30(a6)
  474.  move.l doslib,a6
  475. ; move.l d0,handle
  476.  
  477.  move.l handle,d1
  478.  move.l LEVELDATA,d2
  479.  move.l blocklen,d3
  480.  jsr -42(a6)
  481.  move.l doslib,a6
  482.  move.l handle,d1
  483.  jsr -36(a6)
  484.  
  485.  move.l blockstart,Panel
  486.  
  487.  move.l LEVELDATA,d0
  488.  moveq #0,d1
  489.  move.l Panel,a0
  490.  lea WorkSpace,a1
  491.  lea $0,a2
  492.  jsr unLHA
  493.  
  494.  rts
  495.  
  496. LOADOBS:
  497.  
  498.  PRSDG
  499.  
  500.  move.l #OBJ_ADDRS,a2
  501.  move.l LINKFILE,a0
  502.  lea ObjectGfxNames(a0),a0
  503.  
  504.  move.l #0,TYPEOFMEM
  505.  
  506.  move.l #Objects,a1
  507.  
  508. LOADMOREOBS:
  509.  move.l a0,a4
  510.  move.l #OBJNAME,a3
  511. fillinname:
  512.  move.b (a4)+,d0
  513.  beq.s donename
  514.  move.b d0,(a3)+
  515.  bra.s fillinname
  516.  
  517. donename:
  518.  
  519.  move.l a0,-(a7)
  520.  
  521.  move.l a3,DOTPTR
  522.  move.b #'.',(a3)+
  523.  move.b #'W',(a3)+
  524.  move.b #'A',(a3)+
  525.  move.b #'D',(a3)+
  526.  move.b #0,(a3)+
  527.  
  528.  move.l #OBJNAME,a0
  529.  move.l a1,d0
  530.  moveq #0,d1
  531.  bsr QUEUEFILE
  532.  
  533.  move.l DOTPTR,a3
  534.  move.b #'.',(a3)+
  535.  move.b #'P',(a3)+
  536.  move.b #'T',(a3)+
  537.  move.b #'R',(a3)+
  538.  move.b #0,(a3)+
  539.  
  540.  
  541.  move.l #OBJNAME,a0
  542.  move.l a1,d0
  543.  add.l #4,d0
  544.  moveq #0,d1
  545.  bsr QUEUEFILE
  546.  
  547.  move.l DOTPTR,a3
  548.  move.b #'.',(a3)+
  549. ; move.b #'2',(a3)+
  550. ; move.b #'5',(a3)+
  551. ; move.b #'6',(a3)+
  552.  move.b #'P',(a3)+
  553.  move.b #'A',(a3)+
  554.  move.b #'L',(a3)+
  555.  move.b #0,(a3)+
  556.  
  557.  move.l #OBJNAME,a0
  558.  move.l a1,d0
  559.  add.l #12,d0
  560.  moveq #0,d1
  561.  bsr QUEUEFILE
  562.  
  563.  move.l (a7)+,a0
  564.  
  565.  add.l #64,a0
  566.  add.l #16,a1
  567.  tst.b (a0)
  568.  bne LOADMOREOBS
  569.  
  570.  move.l #POLYOBJECTS,a2
  571.  move.l LINKFILE,a0
  572.  add.l #VectorGfxNames,a0
  573.  
  574. LOADMOREVECTORS
  575.  tst.b (a0)
  576.  beq.s NOMOREVECTORS
  577.  
  578.  move.l a2,d0
  579.  moveq #0,d1
  580.  jsr QUEUEFILE
  581.  addq #4,a2
  582.  
  583.  adda.w #64,a0
  584.  bra.s LOADMOREVECTORS
  585.  
  586. NOMOREVECTORS:
  587.  
  588.  rts
  589.  
  590. DOTPTR: dc.l 0
  591.  
  592. LOAD_A_PALETTE
  593.  movem.l d0-a7/a0-a6,-(a7)
  594.  
  595.  move.l #OBJNAME,blockname
  596.  move.l doslib,a6
  597.  move.l blockname,d1
  598.  move.l #1005,d2
  599.  jsr -30(a6)
  600.  move.l d0,handle
  601.  
  602.  move.l #2048,blocklen
  603.  
  604.  move.l #1,d1
  605.  move.l 4.w,a6
  606.  move.l blocklen,d0
  607.  jsr -198(a6)
  608.  move.l d0,blockstart
  609. ; move.l doslib,a6
  610. ; move.l blockname,d1
  611. ; move.l #1005,d2
  612. ; jsr -30(a6)
  613.  move.l doslib,a6
  614. ; move.l d0,handle
  615.  
  616.  move.l handle,d1
  617.  move.l blockstart,d2
  618.  move.l blocklen,d3
  619.  jsr -42(a6)
  620.  move.l doslib,a6
  621.  move.l handle,d1
  622.  jsr -36(a6)
  623.  
  624.  movem.l (a7)+,d0-a7/a0-a6
  625.  
  626.  move.l blockstart,(a2)+
  627.  move.l blocklen,(a2)+
  628.  
  629.  rts
  630.  CNOP 0,4
  631. fib: ds.l 75
  632.  
  633. LOAD_AN_OBJ:
  634.  movem.l a0/a1/a2/a3/a4,-(a7)
  635.  
  636.  move.l #OBJNAME,blockname
  637.  
  638.  move.l doslib,a6
  639.  move.l blockname,d1
  640.  move.l #1005,d2
  641.  jsr -30(a6)
  642.  move.l d0,handle
  643.  
  644.  lea fib,a5
  645.  move.l handle,d1
  646.  move.l a5,d2
  647.  jsr -390(a6)
  648.  
  649.  move.l $7c(a5),blocklen
  650.  
  651.  move.l #1,d1
  652.  move.l 4.w,a6
  653.  move.l blocklen,d0
  654.  jsr -198(a6)
  655.  move.l d0,blockstart
  656. ; move.l doslib,a6
  657. ; move.l blockname,d1
  658. ; move.l #1005,d2
  659. ; jsr -30(a6)
  660.  move.l doslib,a6
  661. ; move.l d0,handle
  662.  
  663.  move.l handle,d1
  664.  move.l blockstart,d2
  665.  move.l blocklen,d3
  666.  jsr -42(a6)
  667.  move.l doslib,a6
  668.  move.l handle,d1
  669.  jsr -36(a6)
  670.  
  671.  movem.l (a7)+,a0/a1/a2/a3/a4
  672.  
  673.  move.l blockstart,(a2)+
  674.  move.l blocklen,(a2)+
  675.  
  676.  rts
  677.  
  678. RELEASEOBJMEM:
  679.  
  680.  
  681.  move.l #OBJ_NAMES,a0
  682.  move.l #OBJ_ADDRS,a2
  683.  
  684. relobjlop
  685.  move.l (a2)+,blockstart
  686.  move.l (a2)+,blocklen
  687.  addq #8,a0
  688.  tst.l blockstart
  689.  ble.s nomoreovj
  690.  
  691.  movem.l a0/a2,-(a7)
  692.  
  693.  move.l blockstart,d1
  694.  move.l d1,a1
  695.  move.l blocklen,d0
  696.  move.l 4.w,a6
  697.  jsr -210(a6)
  698.  
  699.  movem.l (a7)+,a0/a2
  700.  bra.s relobjlop
  701.  
  702. nomoreovj:
  703.  
  704.  rts
  705.  
  706.  
  707.  
  708. TYPEOFMEM: dc.l 0
  709.  
  710. LOAD_SFX:
  711.  
  712.  move.l LINKFILE,a0
  713.  lea SFXFilenames(a0),a0
  714.  
  715.  move.l #SampleList,a1
  716.  
  717.  
  718.  move.w #58,d7
  719.  
  720. LOADSAMPS:
  721.  tst.b (a0)
  722.  bne.s oktoload
  723.  
  724.  add.w #64,a0
  725.  addq #8,a1
  726.  dbra d7,LOADSAMPS
  727.  move.l #-1,(a1)+
  728.  rts
  729.  
  730. oktoload:
  731.  
  732.  move.l #MEMF_CHIP,TYPEOFMEM
  733.  move.l a1,d0
  734.  move.l d0,d1
  735.  add.l #4,d1
  736.  jsr QUEUEFILE
  737.  addq #8,a1
  738. ; move.l d0,(a1)+
  739. ; add.l d1,d0
  740. ; move.l d0,(a1)+
  741.  adda.w #64,a0
  742.  dbra d7,LOADSAMPS
  743.  rts
  744.  
  745. PATCHSFX:
  746.  
  747.  move.w #58,d7
  748.  move.l #SampleList,a1
  749. .patch
  750.  move.l (a1)+,d0
  751.  add.l d0,(a1)+
  752.  dbra d7,.patch
  753.  
  754.  rts
  755.  
  756. ; PRSDJ
  757. ;
  758. ; move.l #SFX_NAMES,a0
  759. ; move.l #SampleList,a1
  760. ;LOADSAMPS
  761. ; move.l (a0)+,a2
  762. ; move.l a2,d0
  763. ; tst.l d0
  764. ; bgt.s oktoload
  765. ; blt.s doneload
  766. ;
  767. ; addq #4,a0
  768. ; addq #8,a1
  769. ; bra LOADSAMPS
  770. ;
  771. ;doneload:
  772. ; move.l #-1,(a1)+
  773. ; rts
  774. ;oktoload:
  775. ; move.l (a0)+,blocklen
  776. ; move.l a2,blockname
  777. ; movem.l a0/a1,-(a7)
  778. ; move.l #2,d1
  779. ; move.l 4.w,a6
  780. ; move.l blocklen,d0
  781. ; jsr -198(a6)
  782. ; move.l d0,blockstart
  783. ; move.l doslib,a6
  784. ; move.l blockname,d1
  785. ; move.l #1005,d2
  786. ; jsr -30(a6)
  787. ; move.l doslib,a6
  788. ; move.l d0,handle
  789. ; move.l d0,d1
  790. ; move.l blockstart,d2
  791. ; move.l blocklen,d3
  792. ; jsr -42(a6)
  793. ; move.l doslib,a6
  794. ; move.l handle,d1
  795. ; jsr -36(a6)
  796. ; movem.l (a7)+,a0/a1
  797. ; move.l blockstart,d0
  798. ; move.l d0,(a1)+
  799. ; add.l blocklen,d0
  800. ; move.l d0,(a1)+
  801. ; bra LOADSAMPS
  802.  
  803.  
  804.  
  805. LOADFLOOR
  806. ; PRSDK
  807. ; move.l #65536,d0
  808. ; move.l #1,d1
  809. ; move.l 4.w,a6
  810. ; jsr -198(a6)
  811. ; move.l d0,floortile
  812. ;
  813. ; move.l #floortilename,d1
  814. ; move.l #1005,d2
  815. ; move.l doslib,a6
  816. ; jsr -30(a6)
  817. ; move.l doslib,a6
  818. ; move.l d0,handle
  819. ; move.l d0,d1
  820. ; move.l floortile,d2
  821. ; move.l #65536,d3
  822. ; jsr -42(a6)
  823. ; move.l doslib,a6
  824. ; move.l handle,d1
  825. ; jsr -36(a6)
  826.  
  827.  move.l LINKFILE,a0
  828.  add.l #FloorTileFilename,a0
  829.  move.l #floortile,d0
  830.  move.l #0,d1
  831.  jsr QUEUEFILE
  832. ; move.l d0,floortile
  833.  
  834.  move.l LINKFILE,a0
  835.  add.l #TextureFilename,a0
  836.  move.l #BUFFE,a1
  837.  
  838. .copy:
  839.  move.b (a0)+,(a1)+
  840.  beq.s .copied
  841.  bra.s .copy
  842. .copied:
  843.  
  844.  subq #1,a1
  845.  move.l a1,dotty
  846.  
  847.  move.l #BUFFE,a0
  848.  move.l #TextureMaps,d0
  849.  move.l #0,d1
  850.  jsr QUEUEFILE
  851. ; move.l d0,TextureMaps
  852.  
  853.  move.l dotty,a1
  854.  move.l #".pal",(a1)
  855.  
  856.  move.l #BUFFE,a0
  857.  move.l #TexturePal,d0
  858.  move.l #0,d1
  859.  jsr QUEUEFILE
  860. ; move.l d0,TexturePal
  861.  
  862.  rts
  863.  
  864. dotty: dc.l 0
  865. BUFFE: ds.b 80
  866.  
  867.  
  868.  
  869. floortilename:
  870.  ifeq CHEESEY
  871.  dc.b 'AB3:includes/floortile'
  872.  endc
  873.  ifne CHEESEY
  874.  dc.b 'AB3:includes/SMALLfloortile'
  875.  endc
  876.  dc.b 0
  877.  
  878.  even
  879.  
  880. RELEASESAMPMEM:
  881.  move.l #SampleList,a0
  882. .relmem:
  883.  move.l (a0)+,d1
  884.  bge.s .okrel
  885.  rts
  886. .okrel:
  887.  move.l (a0)+,d0
  888.  sub.l d1,d0
  889.  move.l d1,a1
  890.  move.l 4.w,a6
  891.  move.l a0,-(a7)
  892.  jsr -210(a6)
  893.  move.l (a7)+,a0
  894.  bra .relmem
  895.  
  896.  
  897.  
  898. RELEASELEVELMEM:
  899.  
  900.  move.l LINKS,d1
  901.  move.l d1,a1
  902.  move.l #10000,d0
  903.  move.l 4.w,a6
  904.  jsr -210(a6)
  905.  
  906.  
  907.  move.l FLYLINKS,d1
  908.  move.l d1,a1
  909.  move.l #10000,d0
  910.  move.l 4.w,a6
  911.  jsr -210(a6)
  912.  
  913.  
  914.  move.l LEVELGRAPHICS,d1
  915.  move.l d1,a1
  916.  move.l #40000,d0
  917.  move.l 4.w,a6
  918.  jsr -210(a6)
  919.  
  920.  move.l LEVELCLIPS,d1
  921.  move.l d1,a1
  922.  move.l #40000,d0
  923.  move.l 4.w,a6
  924.  jsr -210(a6)
  925.  rts
  926.  
  927. RELEASEFLOORMEM:
  928.  
  929.  move.l floortile,d1
  930.  move.l d1,a1
  931.  move.l #65536,d0
  932.  move.l 4.w,a6
  933.  jsr -210(a6)
  934.  rts
  935.  
  936. COPSCRN1: dc.l 0
  937. COPSCRN2: dc.l 0
  938.  
  939. RELEASESCRNMEM:
  940.  move.l COPSCRN1,d1
  941.  move.l d1,a1
  942.  move.l #(104*80*4)+16,d0
  943.  move.l 4.w,a6
  944.  jsr -210(a6)
  945.  move.l COPSCRN2,d1
  946.  move.l d1,a1
  947.  move.l #(104*80*4)+16,d0
  948.  move.l 4.w,a6
  949.  jsr -210(a6)
  950. ; move.l COPSCRNBUFF,d1
  951. ; move.l d1,a1
  952. ; move.l #(104*80*4)+16,d0
  953. ; move.l 4.w,a6
  954. ; jsr -210(a6)
  955.  
  956.  rts 
  957.  
  958. unLHA:    incbin    "ab3:Decomp4.raw"
  959.  
  960.  
  961.